import java.util.LinkedHashMap;

/**
 *-----------------------------------------------------------------------
 * Universidad del Valle de Guatemala
 * Algoritmos y estructura de datos
 * Mayra Yucely Beb Caal Carne: 12537
 * Vuictor Fuentes       carne: 12298
 * Juan de Dios Chivalan carne: 12175
 *-----------------------------------------------------------------------
 * Utiliza el LinkedHashMap de JCF para asi guardar en los objetos de la
 * clase Word, y así crear un diccionario con los tipos de las palabras
 */
public class LinkedHashMapWordSet implements WordSet{
    
    //se guardarán las palabras
    
    private LinkedHashMap<String,String> theWordSet;

    // Constructor 
     
    public LinkedHashMapWordSet(){
        theWordSet = new LinkedHashMap<>();
    }
    
    // Anade una nueva palabra al set.
     
    @Override
    public void add(Word wordObject) {
        if(!theWordSet.containsKey(wordObject.getWord())){
            theWordSet.put(wordObject.getWord(), wordObject.getType());
        }
    }

    @Override
    // Obtiene la palabra buscada por parte del set 
    
    public Word get(Word word) {
        String theWord = word.getWord();
        if (theWordSet.containsKey(theWord)){
            String theWordType = theWordSet.get(theWord);
            Word toReturn = new Word(theWord, theWordType);
            return toReturn;
        }else{
            return null;
        }
    }        
}